1. Field of the Invention
The present invention relates to the timing of operations conducted to read digital data that is stored on recording media such as magnetic tape or disk media. More particularly, the invention concerns a system for encoding binary user data and imposing frequent recognizable bit patterns thereon to serve as self-clocking events during subsequent readback. The invention also concerns a system for performing timing recovery on readback of encoded waveforms.
2. Description of the Related Art
To store user data on a magnetic data storage medium, a data drive writes positive and negative xe2x80x9cflux transitionsxe2x80x9d to the medium. Under the xe2x80x9cNRZIxe2x80x9d protocol (FIG. 1), a binary xe2x80x9conexe2x80x9d may be stored by writing either a positive flux transition (e.g., 100 or 101), or a negative flux transition (e.g., 102) to the medium. A binary xe2x80x9czeroxe2x80x9d is represented by the absence of a flux transition (e.g., 103). Each binary bit (whether a xe2x80x9conexe2x80x9d or a xe2x80x9czeroxe2x80x9d) is written to the storage medium according to a fixed cycle clock. If each cycle lasts 25 xcexcs, for example, then the 225 xcexcs sequence of FIG. 1 represents the binary sequence xe2x80x9c011001000xe2x80x9d.
To read data from a storage medium, a read head generates a continuous analog output waveform based upon the flux transitions. Then, processing circuitry uses the output waveform to effectively reconstruct the user data that was originally stored on the storage medium as flux transitions.
FIG. 2 illustrates an analog waveform created when the read head senses the flux transitions of FIG. 1. The waveform 202 contains a series of positive-going and negative-going xe2x80x9cpulsesxe2x80x9d corresponding to the positive and negative flux transitions of FIG. 1. For instance, the positive-going pulse 200 corresponds to the positive flux transition 100, and the negative-going pulse 204 corresponds to the negative flux transition 102.
Since the flux transitions are stored at times specified by a periodic clock, timing is crucial when reading flux transitions from a magnetic data storage medium to create an analog readback waveform. To accurately interpret the analog pulses and distinguish neighboring pulses, the readback processing circuitry must be able to precisely predict or determine where each analog pulse occurs.
The xe2x80x9cone-sevenxe2x80x9d code is one known method that seeks to improve timing accuracy by storing full-sized pulses. Generally, this is accomplished by encoding the binary user data prior to storage. Specifically, th one-seven code maps an uncoded binary bit stream to an encoded binary sequence as follows. One or more binary xe2x80x9conesxe2x80x9d are guaranteed to occur in every eight bits, but no two binatryones can occur sequentially. Although the one-seven code is beneficial for certain applications, it has a number of drawbacks when considered for other a uses. For example, the one-seven code involves a mapping of two uncoded bits to three encoded bits -- as a result, the encoded sequence requires one third more storage space in comparison to the uncoded sequence. Therefore, this approach may not be completely satisfactory in applications where storage space is limited or expensive.
The present invention concerns the reading of data stored on recording media such as magnetic or optical disks, and specifically the timing of such operations. The invention provides a system that encodes binary user data into binary sequences possessing specific bit patterns and stores the encoded binary sequence on the recording media in the form of magnetic flux transitions. Subsequently, the stored flux transitions are read to form a continuous analog waveform confining features corresponding to the specific binary patterns, which enables precise adjustment to timing.
In one embodiment, the present invention concerns a method for encoding a binary sequence of user data for storage on a magnetic data storage medium such as a disk or tape. First, the input sequence to be stored is received in the form of a binary sequence. Then, the uncoded binary sequence is encoded to enable the timing of subsequent readback operations. More particularly, the uncoded binary sequence is encoded such that the encoded binary sequence contains a specific binary pattern, occurring with at least a guaranteed minimum level of frequency. This allows precise timing during readback, as discussed below. To facilitate storage efficiency, the binary pattern may be relatively short, such as xe2x80x9c010xe2x80x9d.
After the binary sequence of user data is encoded, the encoded sequence is stored on the recording medium as a sequence of positive or negative flux transitions. A read head generates a continuous analog readback waveform from the recorded flux transitions. During readback a read head senses flux transitions that representing the encoded binary sequence on the recording medium, thus producing analog peak or analog zero-crossing features in the analog readback waveform. The readback waveform is sampled and digitized to yield a sequence of digits. The digitized sequence is then processed to provide a binary bit stream, thereby reconstructing the encoded binary sequence stored on the recording medium. Then, ether reconstructed encoded binary bit stream is decoded by reversing the encoding procedure.
By evaluating the timing of samples, also a timing circuit adjusts the sampling of the analog readback waveform. This ensures that the analog readback waveform is sampled at appropriate times to yield the most accurate results. In one embodiment, the timing circuit compares the absolute values of two consecutive samples. No change in timing is made unless both samples have the same sign and the sum of their absolute values exceeds a first threshold, if it does, the timing circuit calculates the difference between the samples"" absolute values. The timing circuit advances, retains, or retards its sampling interval depending on whether the difference is positive, zero, or negative, respectively. In one embodiment, these timing adjustments are made in proportion to the amount of the calculated difference.
A different embodiment of the present invention comprises a data storage medium tangibly embodying a program of instructions to encode a binary bit stream of user data, store the encoded sequence on a data storage medium, and to subsequently readback the stored sequence using an improved timing recovery scheme.